1. Field of the Invention
The present invention relates generally to communication among routines within and among computer programs.
2. Related Art
Application programmer interfaces (APIs) are procedures for computer program communication. During processing of a routine of a computer program, communication is needed with other routines within the computer program and with routines of other computer programs. In order to communicate, a routine of a computer program retrieves the API procedures stored in memory and processes the API which results in the desired communication.
A computer program, which may also be referred to as an application program, typically resides in memory of a computer, also referred to as a computer system. The computer has memory, which is hardware capable of storing digital data, and, a processor, which is connected to the memory and is capable of processing instructions or procedures stored in digital format. The computer program is processed by the processor within the computer system. A computer program has multiple routines which may also be referred to as components or elements. The various routines of the computer program need to communicate in order to process the computer program and perform the desired function.
Exemplary APIs are those used by the Excel programmable switch described in a document entitled Excel API specification revision 5.0. The APIs within the Excel programmable switch enable communication with external telecommunication network components and complete call processing via a telecommunications network. The programmable switch is a component in a telecommunications network that can accept a call from a telephone circuit, accept commands for processing the call, and switch the call by interconnecting two channels on a switch matrix within the programmable switch. The Excel programmable switch APIs provide the procedures needed to perform call processing functions.
Although the programmable switch can perform basic switching based on commands from an external telecommunications network component, the programmable switch is not capable of performing complex call processing needed to handle service specific features of many enhanced telecommunications services. Similarly, the Excel programmable API is also not capable of performing complex call processing needed to handle service specific features of enhanced telecommunications services.
A switch controller is a telecommunications network component which controls operation of one or more programmable switches and is capable of performing complex call processing to handle service specific features of enhanced telecommunications services. The switch controller provides an interface between the public switching telephone network (PSTN) and an intelligent service network (ISN). The ISN includes components which perform enhanced call handling capabilities, such as operator consoles and automated response units, and components that provide access to databases and other networks. Exemplary call processing functions performed by the switch controller to provide enhanced call service capability include group selecting, call queuing, and processing of prepaid call billing. Enhanced services, such as pre-paid service, calling card, operator service, 1-800-COLLECT, and 1-800-MUSIC-NOW are implemented using the switch controller.
The switch controller has generic application programmer interfaces (APIs) which allow communication between the switch controller application program routines. Switch controller APIs (SCAPIs) provide procedures for switch controller communication to provide control commands to programmable switches, interface to the ISN, and perform call processing functions necessary for enhanced service call processing. The switch controller performs conversion between the SCAPIs and the programmable switch APIs. In addition, the switch controller performs conversion between the SCAPIs and network information distribution service (NIDS) sequenced packet protocol (NSPP) which rides on top of user datagram protocol/internet protocol (UDP/IP) used by the ISN. The NSPP is a session-oriented, guaranteed-delivery packet exchange protocol which provides fast communications with client-server programs which use UDP/IP.
The SCAPIs are generic in that they are unique and are not affected by changes to other APIs or messaging techniques, such as the Excel programmable switch APIs or changes to ISN NSPP and UDP/IP protocols. Having a generic SCAPI provides various benefits, including flexibility and extensibility. Flexibility is possible because the SCAPIs are independent of the programmable switch APIs and the ISN protocols. The programmable switch APIs and the ISN protocols do not need to be upgraded with changes to the SCAPIs. Likewise, the SCAPIs do not need to be upgraded with the changes to the programmable switch APIs the ISN protocols. Therefore, changes can be more readily made to the programmable switches, switch controller, and ISN that require changes to the respective APIs and protocols.
In addition, extensibility is improved with generic SCAPIs because new services can be more easily implemented. New services can be more easily implemented because modifications are not needed to the programmable switch, switch controller, and ISN for communication between these components. Modifications are needed only to telecommunications network components directly impacted by the changes required to implement the new service. For example, if a new operator service feature is added to the ISN, only the ISN and possibly the switch controller are impacted. Modifications are not needed to the programable switch. Likewise, if Excel changes the programmable switch APIs, the change can be accommodated by changing one routine of the switch controller that performs conversion between the programmable switch APIs and the SCAPIs.
To accommodate enhanced services, the SCAPIs perform various functions. The SCAPIs provide procedures for accepting messages from and sending messages to the programmable switch in programmable switch API format. In addition, the SCAPIs provide procedures for interprocess registration. Interprocess registration is registration by a routine within a computer program with another routine within the computer program. Also, the SCAPIs are capable of controlling the switch controllers or telecommunications network components interfering with the switch controller, such as standalone personal computer (pc) systems, by allowing interprocess requests to perform tasks. Furthermore, the SCAPIs provide procedures to communicate call processing related information and requests to perform call processing functions.
These functions are performed by various types of SCAPIs. Four types of SCAPIs are switch SCAPIs, registration SCAPIs, control SCAPIs, and service SCAPIs. Switch SCAPIs allow the switch controller to interface with the programmable switch. Registration SCAPIs allow the switch controller processes to register themselves with other processes. Control SCAPIs request a process to perform a task. Service SCAPIs request call processing related services.
The SCAPIs are stored in the main memory and processed by the processor of a computer. In order to process the SCAPI, the processor calls the SCAPI procedure from main memory. The SCAPI procedure includes sending a SCAPI message comprising data from one routine to another and receiving a response. The SCAPI message includes input data, which is data included in the initial the SCAPI message. The SCAPI message causes the recipient routine to perform an action using the input data and provide a response SCAPI message. The response SCAPI message includes return data which is data included in the response message providing data requested and/or indicating whether the transaction was successful. In addition, the SCAPI message may provide output data which is data requested by the initiating routine. The SCAPI response messages are not required but are useful in ensuring that a transaction is completed successfully.
Because there are various different types of SCAPI messages, a message descriptor indicating the message type and other information about the message precedes the message. The message descriptor describes the message characteristics and allows the SCAPIs to behave in a consistent manner for all SCAPI types.
Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings.